﻿package birdry.display
{
	import flash.display.Graphics;

	public class Rect extends BaseShape
	{
		// 클래스 영역에서  private/public 키워드로 선언된 변수는 클래스안 어디에서든 사용가능
		
		private var _width: Number = 100;
		private var _height: Number = 100;
		// 생성자 
		// 어떤 매개변수에서 default 값이 설정되면, 그 이후에 나오는 모든 변수는 default 값을 가져야 한다..
		public function Rect( width: Number = 100, height: Number = 100 )
		{
			// 매개변수는 해당 메서드 안에서만 사용이 가능하다..			 
			super();
			
			this._width = width;
			this._height = height;
			this.draw();
		}
		
		override protected function draw(): void
		{
			var g: Graphics = this.graphics;
			g.clear();												// 그려진 그림 제거...
			g.lineStyle( this.lineThickness, this.lineColor, this.lineAlpha, true );
			g.beginFill( this.fillColor, this.fillAlpha );
			g.drawRoundRect( 0, 0, this._width, this._height, this._roundRadius, this._roundRadius );
			g.endFill();
		}		
		
		
		// 부모에게서 상속받은 width는 강제로 전체를 늘이기 때문에 둥근 모서리가 깨지게 된다...
		// 따라서... width를 재정의해서... 새롭게 구성한다.. 
		override public function get width (): Number
		{
			return this._width;
		}
		override public function set width ( value: Number ): void
		{
			this._width = value;
			this.draw();
		}
		
		override public function get height (): Number
		{
			return this._height;
		}
		override public function set height ( value: Number ): void
		{
			this._height = value;
			this.draw();
		}
	
		private var _roundRadius: uint = 0;
		public function set roundRadius( value: uint ): void
		{
			this._roundRadius = value;
			this.draw();
		}
		
		// lineAlpha, lineColor, fillAlpha
	}// end of class
}// end of package




















